<?php

class Controller_User_Password_Reset
{
    function execute($request)
    {
        $form = new Form_User_Password_Reset;

        $code = $request -> getParam('code');

        $db = Mongo_Database::instance() -> selectCollection('user_forgetpassword');

        $item = $db -> findOne(array('_id' => $code));

        $user = null;

        if (null == $item)
        {
            $cid = 'INVALID';
        }
        else
        if ($item['expired_time'] < time())
        {
            $cid = 'EXPIRED';
        }
        else
        if ($item['user_id'])
        {
            $cid = NULL;
            $user = Mongo_Document::factory('user', $item['user_id']);
        }else{
            $cid = 'INVALID';
        }
        
        var_dump($cid);
        
        if ($item && $user)
        {

            if ($request -> isPost() && $form -> isValid($_POST))
            {
                $values = $form -> getValues();

                if ($values['password'] == $values['password2'])
                {
                    $user -> setPassword($values['password']);
                    $message = 'Mật khẩu của bạn đã được cập nhật';
                    $user -> save($safe = true);
                    $db -> remove(array('_id' => $code));

                }

            }
        }
        $request -> response = View::render(array(
            'form' => $form,
            'cid' => $cid,
            'code'=>$code,
            'message' => $message
        ), 'controller/user/password/reset.tpl');
    }

}
